package sg.edu.nus.iss.cerberus.engine;

import java.util.ArrayList;
import java.util.HashMap;

import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jdt.core.dom.AbstractTypeDeclaration;
import org.eclipse.jdt.core.dom.FieldDeclaration;
import org.eclipse.jdt.core.dom.MethodDeclaration;

import sg.edu.nus.iss.cerberus.model.CClass;
import sg.edu.nus.iss.cerberus.model.CConstructor;
import sg.edu.nus.iss.cerberus.model.CMemberMethod;
import sg.edu.nus.iss.cerberus.model.CMemberVariable;
import sg.edu.nus.iss.cerberus.model.CPackage;

/**
 * A class for creation of ITestEngine object.
 * 
 * @author Priyanka (a0065715)
 * 
 * */
public interface  ITestEngineObjectsCreator {
	
	public CPackage createCPackage(IPackageFragment mypackage);
	
	public CClass createCCLass(AbstractTypeDeclaration type, HashMap<String, ArrayList<CMemberMethod>> methodHash, 
			ArrayList<CMemberVariable> fieldArray, ArrayList<CConstructor> constructorArray);
	
	public CMemberVariable createCField(FieldDeclaration field);
	public CMemberMethod createCMethod(MethodDeclaration method);
	public CConstructor createCConstructor(MethodDeclaration method);
}
